home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / smail-3.1.28 / src / field.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-11  |  2.0 KB  |  55 lines

  1. /* @(#)src/field.h    1.3 7/11/92 11:49:14 */
  2.  
  3. /*
  4.  *    Copyright (C) 1987, 1988 Ronald S. Karr and Landon Curt Noll
  5.  *    Copyright (C) 1992  Ronald S. Karr
  6.  * 
  7.  * See the file COPYING, distributed with smail, for restriction
  8.  * and warranty information.
  9.  */
  10.  
  11. /*
  12.  * field.h:
  13.  *    interface file for routines in field.c.
  14.  */
  15.  
  16. /* types used in field.h */
  17. struct token {                /* elements of token lists */
  18.     struct token *succ;            /* next member in the queue */
  19.     char *text;                /* text for this member */
  20.     char *space;            /* preceding white space/comments */
  21.     int form;                /* type of token represented */
  22. };
  23.  
  24. /* token forms for token.form */
  25. #define T_QUOTE        0x01        /* literal text within quotes */
  26. #define T_DOMLIT    0x02        /* domain literal in square brackets */
  27. #define T_OPER        0x04        /* single operator token */
  28. #define T_TEXT        0x08        /* text literal token */
  29. #define T_END        0x10        /* end of tokens */
  30. #define T_ERROR        0x20        /* error is error message */
  31.  
  32. /* macros for interpreting token forms */
  33. #define QUOTETOK(f)    (( (f) & T_QUOTE ) != 0)    /* quote token */
  34. #define DOMLITTOK(f)    (( (f) & T_DOMLIT ) != 0)    /* domain token */
  35. #define OPERTOK(f)    (( (f) & T_OPER ) != 0)        /* operator token */
  36. #define TEXTTOK(f)    (( (f) & T_TEXT ) != 0)        /* text token */
  37. #define ENDTOK(f)    (( (f) & T_END ) != 0)        /* end of tokens */
  38.  
  39. /* WORDTOK - any token other than an operator */
  40. #define WORDTOK(f)    (( (f) & (T_QUOTE|T_DOMLIT|T_TEXT) ) != 0)
  41.  
  42. /* values returned by various pattern matching routines */
  43. #define T_NOMATCH    0        /* did not match pattern */
  44. #define T_GENERAL    1        /* matched general address form */
  45. #define T_ROUTE        2        /* matched a route */
  46. #define T_GROUP        3        /* matched a group */
  47. #define T_GROUPTERM    4        /* matched a group terminator */
  48. #define T_MODIFIED    5        /* modified matched group or general */
  49. #define T_MUTANT_FORM    6        /* okay mutant form found in route */
  50.  
  51. /* behavior flags for process_field */
  52. #define F_LOCAL        0x01        /* process as locally generated mail */
  53. #define F_STRICT    0x02        /* use strict RFC822 reformatting */
  54. #define F_ALIAS        0x04        /* process as with aliases file */
  55.